package com.libre.common.init;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

/**
 * @description 有时一些特殊的任务需要在系统启动时执行，例如配置文件加载、数据库初始化等操作。
 *              Spring Boot 提供了两种解决方案：CommandLineRunner 和 ApplicationRunner。二者使用方式大体一致，差别主要体现在参数上。
 *
 * @author 庞留杰
 * @date 2020/9/21 8:50
 * @version V1.0
 **/
@Slf4j
@Component
public class MyCommandLineRunner implements CommandLineRunner {

    @Value("${spring.datasource.url}")
    private String url;
    @Value("${spring.datasource.username}")
    private String username;
    @Value("${spring.datasource.password}")
    private String password;
    @Value("${spring.application.name}")
    private String name;
    @Value("${spring.profiles.active}")
    private String active;

    @Override
    public void run(String... strings) {
        log.info(">>>>>>>>>>>>>> 项目名name：{} >>>>>>>>>>>>>> ", name);
        log.info(">>>>>>>>>>>>>> 启动环境active：{} >>>>>>>>>>>>>> ", active);
        log.info(">>>>>>>>>>>>>> 数据库连接url：{} >>>>>>>>>>>>>> ", url);
        log.info(">>>>>>>>>>>>>> 数据库连接username：{} >>>>>>>>>>>>>> ", username);
        log.info(">>>>>>>>>>>>>> 数据库连接password：{} >>>>>>>>>>>>>> ", password);
        log.info(">>>>>>>>>>>>>> 项目启动成功!!! >>>>>>>>>>>>>> ");
    }
}
